package com.hzxy.yiyid.web.module.service;

import com.hzxy.yiyid.web.common.base.BaseResult;
import com.hzxy.yiyid.web.module.controller.vo.DrugRequestVO;
import com.hzxy.yiyid.web.module.controller.vo.MedicationPlanVO;
import com.hzxy.yiyid.web.module.controller.vo.MedicationPlanVO2;
import com.spire.doc.Document;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface DrugService {

    /*
     * @Author RAICOM2023
     * @Description //根据药品名称查询不合规药品
     * @Date 22:41 2023/3/6
     * @Param [drugRequestVO]
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     **/
    public List<Map<String, Object>> listSubstandardDrug(DrugRequestVO drugRequestVO) throws Exception;

    /*
     * @Author RAICOM2023
     * @Description //根据药品名称查询不合规药品--总数
     * @Date 22:41 2023/3/6
     * @Param [drugRequestVO]
     * @return long
     **/
    public long findSubstandardDrugTotal(DrugRequestVO drugRequestVO) throws Exception;

    /*
     * @Author RAICOM2023
     * @Description //根据药品名称查询是否是医保药品
     * @Date 12:38 2023/3/6
     * @Param [drugRequestVO]
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     **/
    public List<Map<String, Object>> listMedicareDrug(DrugRequestVO drugRequestVO) throws Exception;

    /*
     * @Author RAICOM2023
     * @Description //根据药品名称查询是否是医保药品--总个数
     * @Date 12:39 2023/3/6
     * @Param [drugRequestVO]
     * @return long
     **/
    public long findMedicareDrugTotal(DrugRequestVO drugRequestVO) throws Exception;

    /*
     * @Author RAICOM2023
     * @Description //识别药物说明书
     * @Date 13:17 2023/3/6
     * @Param [file]
     * @return com.hzxy.yiyid.web.common.base.BaseResult<?>
     **/
    public BaseResult<?> aiDrug(MultipartFile file) throws Exception;

    /*
     * @Author RAICOM2023
     * @Description //快速荐药-根据文本输入框输入的症状信息获得用药方案
     * @Date 8:43 2023/4/29
     * @Param []
     * @return CrossFlowResult
     **/
    BaseResult<MedicationPlanVO2> getMedicationPlan(String sex, String ageGroup, String symptom) throws Exception;

    /*
     * @Author RAICOM2023
     * @Description //点击下载说明书
     * @Date 8:32 2023/5/5
     * @Param [id]
     * @return com.spire.doc.Document
     **/
    Document downloadDirections(Long id) throws Exception;

}
